"""
    可迭代对象：
    for循环的原理是什么？
         1， 获取迭代器
         2, 循环获取下一个元素
         3, 遇到异常，停止迭代

    可以被for的条件是什么？
        1， 能被for的对象必须具备__iter__()方法。
        2， 或者说是，能被for的对象，是可迭代对象，具有__iter__函数的对象，就是能被for迭代的对象。
"""

# list01就是可迭代对象 --容器
list01 = [1, 2, 56, 66, 88, 456, 12]
# 迭代过程
for i in list01:
    print(i)

# 迭代原理
# 1， 获取迭代器
qtx = list01.__iter__()

# 2, 循环获取下一个元素
while True:
    try:
        item = qtx.__next__()
        print(item)
    # 3, 遇到异常，停止迭代
    except StopIteration:
        break

# 栗子
yz = ('铁扇公主', '铁锤公主', '扳手王子')
yzda = yz.__iter__()
while True:
    try:
        item = yzda.__next__()
        # print(item)
    except StopIteration:
        break

# 栗子2
zd = {'铁扇公主': 101, '铁锤公主': 102, '扳手王子': 103}
zdda = zd.__iter__()
while True:
    try:
        item = zdda.__next__()
        print(item, zd[item])
    except StopIteration:
        break
